1. Field of the Invention
The present invention relates to creating network connections within computer networks. More specifically, the present invention relates to creating direct network connections between computers via the Internet.
2. Description of the Related Art
A first computer on a network (e.g., the Internet) may remotely access a second computer on the network, making possible many collaborative tasks. For example, a user may use the first computer to remotely access the second computer and thereby remotely perform tasks on the second computer, a concept commonly referred to as desktop sharing. As another example, a user may use a first computer to host a meeting or a conference over the network. The meeting or conference may be realized by users of one or more other computers on the network remotely accessing the first computer, a realization commonly referred to as a web-meeting. However, in order for computers to remotely access one another over a computer network, a network connection must first be created between the computers.
Referring now to FIG. 1, a conventional three-tier architecture for creating network connections between two computers is illustrated. The conventional three-tier architecture includes a host computer 105, a client computer 115, and a remote access server 120 providing a remote access website 110. The host computer 105 is linked to the remote access server 120 by a network connection 125. The client computer 115 is also linked to the remote access server 120 by a network connection 130. The remote access server 120 acts as an intermediary between the host computer 105 and the client computer 115, with all data packets exchanged between the two computers 105, 115 passing through the server 120. Thus, the network connection between the two computers 105, 115 requires that the remote access server 120 play an active role in data transfer throughout the duration of the connection. Such a three-tier architecture has a number of undesirable drawbacks. A first drawback is the large amount of bandwidth and computing resources consumed by the remote access server 120. A second drawback is that system complexity increases rapidly as more host computers 105 and more client computers 115 access the remote access server 120. A third drawback is that the remote access server 120 represents a single point-of-failure within the system, thereby limiting system robustness.